package io.github.source.media.bean;


/**
 * 媒体提供者接口，定义了获取媒体信息的方法。
 * 用于异步或同步地提供媒体分类、媒体列表、媒体详情及播放信息等。
 */
public interface MediaProvider extends
        MediaCategoryProvider/*分类*/,
        MediaQueryProvider/*查询*/,
        MediaDetailsProvider/*详情*/,
        MediaPlayProvider/*播放*/ {

    /**
     * 获取MediaProvider的实例。
     *
     * @return MediaProvider的实现类实例。
     */
    public static MediaProvider get() {
        return MediaProviderImpl.get();
    }

    /**
     * 初始化并加载配置数据。
     */
    public static void init() {

    }

    /**
     * 注册媒体回调监听器。
     *
     * @param callback 回调监听器接口。
     */
    public static void registerListener(MediaCallback callback) {
        MediaCallbackImpl.get().registerListener(callback);
    }

    /**
     * 注销媒体回调监听器。
     *
     * @param callback 回调监听器接口。
     */
    public static void unRegisterListener(MediaCallback callback) {
        MediaCallbackImpl.get().unRegisterListener(callback);
    }
}